package ru.massmo.trace;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Trace {
    /**
     * @return true if we need trace of method argument values
     */
    boolean traceArgs() default true;

    /**
     * @return true if we need trace of method returns
     */
    boolean traceReturning() default false;

    /**
     * @return true if we need trace of method return values
     */
    boolean traceReturnValue() default false;

    /**
     * @return true if we need trace of exceptions throws from the method
     */
    boolean traceExceptions() default false;
}
